Importing necessary libraries

Setting necessary paths

Creating dataframe with data stats

Visualising data stats

Creating dataframe from images and labels

Data to csv

Defining transformations for data augumentation

Creating Custom Dataloader

Splitting training data into training and validation sets

Visualising the data

Building the model

We have trained this model twice - with 2 different optimisers:

These are known to produce the best results in image classification problems. The training given below has been done on Adam. To use SGD with Nesterov accelaration instead, use the commented out optimizer instead of the one used below.

Training and validating the model

Plotting training/validation losses

Plotting training/validation accuracy

Loading model with lowest validation loss

Testing the model

Evaulating the model

Visualising predicted results

Using Transfer Learning

ResNet50 backbone

resnet50.png

Defining transformations according to ResNet50 standards

Splitting training data into training and validation sets

Loading pretrained ResNet50 model and adding final layers

Training and validating the model

Plotting training/validation losses

Plotting training/validation accuracy

Loading model with lowest validation loss

Testing the model

Evaulating the model

Visualising predicted results

VGG16

Training and validating the model

Plotting training/validation losses

Plotting training/validation accuracy

Loading model with lowest validation loss

Testing the model

Evaulating the model

Visualising predicted results

VGG 19